home *** CD-ROM | disk | FTP | other *** search
/ Software Vault: The Diamond Collection / The Diamond Collection (Software Vault)(Digital Impact).ISO / cdr37 / blt300.zip / EDIT.PPS < prev    next >
Text File  |  1995-01-01  |  3KB  |  99 lines

  1. ;Text Editor PPE (Saves in file "TEMP.!!!")
  2.  
  3. STRING x        ' Temporary storage for cursor x position
  4. STRING y        ' Temporary storage for cursor y position
  5.  
  6. STRING  BEEP     ' An ASCII beep
  7. STRING  CR       ' An ASCII carriage return
  8. STRING  DATA
  9. STRING  FILE
  10. STRING  HOLD
  11. STRING  HOME     ' ANSI home sequence
  12. STRING  CLREOL   ' ANSI clear to end of line sequence
  13. STRING  key
  14. BOOLEAN  EXITFLAG
  15. INTEGER  NUMCHR
  16. ;***********************************************************************
  17.  
  18. ; Initializations
  19.  
  20. LET BEEP     = CHR(7)
  21. LET CR       = CHR(13)
  22.  
  23. ;***********************************************************************
  24. STARTDISP FNS
  25. DELETE PPEPATH()+"TEMP.!!!"
  26. DELETE PPEPATH()+"TEMP.@@@"
  27. FOPEN 1,PPEPATH()+"TEMP.!!!",O_RW,S_DN
  28. FOPEN 2,PPEPATH()+"TEMP.@@@",O_RW,S_DN
  29. CLS
  30. PRINTLN "Enter a Subject for your Bulletin (No more then 20 characters)"
  31. PRINT "Subject: "
  32. NUMCHR = 1
  33. WHILE (KEY <> CHR(13) & (LEN(HOLD) < 20)) DO
  34.     GOSUB GETAKEY
  35.     PRINT KEY
  36.     HOLD = HOLD+KEY
  37. ENDWHILE    
  38. FPUT 2,HOLD
  39. GOSUB BORDER    'Display the screen border
  40. ANSIPOS 1,2
  41. GOSUB GETAKEY
  42. WHILE (key <> CHR(27)) DO    'While the user or sysop dosn't enter an ESC DO
  43.     GOSUB GETXY
  44.     IF (key = CHR(13)) THEN        'If key is a CR do this
  45.                 GOSUB GETXY             'GET the X/Y possion of the cursor
  46.         ANSIPOS 1,y+1        'Move cursor down one line
  47.         GOSUB GETAKEY        'Get a new key
  48.         FPUTLN 1,""
  49.     ELSEIF ((key = CHR(8)) & (x = "1") & (Y <> 2)) THEN
  50.         GOSUB GETXY
  51.         ANSIPOS 78,y-1
  52.         FSEEK 1,-1,SEEK_CUR
  53.         FPUT 1," "
  54.         FSEEK 1,-1,SEEK_CUR
  55.     ELSEIF ((key = CHR(8)) & (x <> "1")) THEN
  56.         BACKUP 1
  57.         PRINT " "
  58.         BACKUP 1
  59.         FSEEK 1,-1,SEEK_CUR
  60.         FPUT 1," "
  61.         FSEEK 1,-1,SEEK_CUR
  62.         GOSUB GETAKEY
  63.     ELSE                'ELSE PRINT key
  64.         GOSUB GETXY
  65.         IF (x = 78) THEN
  66.             ANSIPOS 1,y+1
  67.             PRINT key
  68.             FPUT 1,KEY
  69.             GOSUB GETAKEY
  70.         ENDIF
  71.         GOSUB GETXY
  72.         IF (LEN(KEY) = 1) THEN
  73.             PRINT key
  74.             FPUT 1,KEY
  75.         ENDIF
  76.         GOSUB GETAKEY    'Get a new key
  77. ENDIF
  78. ENDWHILE
  79. FCLOSE 1
  80. END
  81. ;***********************************************************************
  82. :BORDER
  83. CLS
  84. DISPFILE PPEPATH()+"TEMP.!!!",0
  85. PRINTLN "Enter your Bulletin here. Press (ESC) when you are done."
  86. RETURN
  87. ;***********************************************************************
  88. :GETAKEY
  89. LET KEY = "UH"
  90. WHILE (key = "UH") DO
  91. key = INKEY()
  92. ENDWHILE
  93. RETURN
  94. ;***********************************************************************
  95. :GETXY
  96. LET x = GETX()
  97. LET y = GETY()
  98. RETURN
  99. ;***********************************************************************